package com.hzz.dto.sys;

import java.util.Date;
import java.util.List;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("新闻资讯 DTO")
public class SysNewsDto extends BaseDto {
    @ApiModelProperty("ID")
    Long id;
	@ApiModelProperty(value = "分类 1新闻动态 2制度文件 3治水百科(标准规范、政策制度、法律法规) 4常见问题 5通知公告 6转载文章 7宣传引导", required = true)
    Integer type;
    @ApiModelProperty("栏目 治水百科(1标准规范、2政策制度、3法律法规)")
    Long subject;
    @ApiModelProperty("标题")
    @NotNull(message = "title不能为空") @Size(max = 155, message = "title最大155字符")
    String title;
    @ApiModelProperty("副标题")
    @Size(max = 255, message = "subtitle最大255字符")
    String subtitle;
    @ApiModelProperty("封面图")
    @Size(max = 255, message = "cover最大255字符")
    String cover;
    @ApiModelProperty("发布时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date publicTime;
    @ApiModelProperty("发布者")
    @Size(max = 155, message = "publisher最大155字符")
    String publisher;
    @ApiModelProperty("上传文件")
    @Size(max = 255, message = "file最大255字符")
    String file;
    @ApiModelProperty("简介")
    @Size(max = 555, message = "briefInfo最大555字符")
    String briefInfo;
    @ApiModelProperty("详情")
    String detailInfo;
    @ApiModelProperty("是否置顶 0否1是")
    Integer isTop;
    @ApiModelProperty("发布状态 0否1是")
    Integer state;
    @ApiModelProperty("备注")
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    @ApiModelProperty("版本号")
    Integer version;
    @ApiModelProperty("排序")
    Integer orderNo;
    @ApiModelProperty("关键字")
    @Size(max = 255, message = "keyword最大255字符")
    String keyword;
    @ApiModelProperty("删除标记(0正常1删除)")
    Integer delFlag;
    @ApiModelProperty("建立者ID")
    Long createId;
    @ApiModelProperty("创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    @ApiModelProperty("更新时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;

	/**
	 * 宣传引导投票选项
	 */
	List<SysNewsOptionsDto> optionsDto;
}
